package com.sinping.qh.utils.email;

import java.io.*;
import java.net.URL;
import java.net.URLDecoder;

/**
 * 文件操作代码
 * 
 * @author cn.outofmemory
 * @date 2013-1-7
 */
public class FileUtils {
	
	/**
	 * 
	 * 功能描述：获取文件夹下文件列表
	 *
	 * @param dirpath
	 * @return
	 *
	 * @author 陈超
	 *
	 * @since 2015年8月11日
	 *
	 * @update:[变更日期YYYY-MM-DD][更改人姓名][变更描述]
	 */
	public static String[] getFileLst(String dirpath){
		
		String respath = getResourcePath(dirpath);
		
		if(null==respath){
			return null;
		}
		
		File file = new File(respath);
		
		if(null!=file && file.exists() && file.isDirectory()){
			return file.list();
		}
		
		return null;
	}
	public static String getResourcePath(String fileName) {
		try {
			URL url = Thread.currentThread().getContextClassLoader().getResource(fileName);
			
			if(null==url) return null;
			
			return URLDecoder.decode(url.getPath(),	"UTF-8");
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;

	}
	public static String readString(InputStream is) throws IOException {
		StringBuffer buffer = new StringBuffer();
		
        String line; // 用来保存每行读取的内容
        BufferedReader reader = new BufferedReader(new InputStreamReader(is,"UTF-8"));
        line = reader.readLine(); // 读取第一行
        while (line != null) { // 如果 line 为空说明读完了
            buffer.append(line); // 将读到的内容添加到 buffer 中
            buffer.append("\n"); // 添加换行符
            line = reader.readLine(); // 读取下一行
        }
        reader.close();
        is.close();
        
        return buffer.toString();
    }
    /**
     * 将文本文件中的内容读入到buffer中
     * @param buffer buffer
     * @param filePath 文件路径
     * @throws IOException 异常
     * @author cn.outofmemory
     * @date 2013-1-7
     */
    public static void readToBuffer(StringBuffer buffer, String filePath) throws IOException {
        InputStream is = new FileInputStream(filePath);
        String line; // 用来保存每行读取的内容
        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        line = reader.readLine(); // 读取第一行
        while (line != null) { // 如果 line 为空说明读完了
            buffer.append(line); // 将读到的内容添加到 buffer 中
            buffer.append("\n"); // 添加换行符
            line = reader.readLine(); // 读取下一行
        }
        reader.close();
        is.close();
    }

    /**
     * 读取文本文件内容
     * @param filePath 文件所在路径
     * @return 文本内容
     * @throws IOException 异常
     * @author cn.outofmemory
     * @date 2013-1-7
     */
    public static String readFile(String filePath) throws IOException {
        StringBuffer sb = new StringBuffer();
        FileUtils.readToBuffer(sb, filePath);
        return sb.toString();
    }
}
